package com.ruoyi.business.domain;

import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;

/**
 * 交易记录对象 business_trade_record
 *
 * @author ruoyi
 * @date 2024-04-15
 */
@Data
@NoArgsConstructor
public class BusinessTradeRecord extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    private Long id;

    /**
     * 订单编号
     */
    @Excel(name = "订单编号")
    private String orderNo;

    /**
     * 客户编号
     */
    @Excel(name = "客户编号")
    private String cusNo;

    /**
     * 股东编号
     */
    @Excel(name = "股东编号")
    private String stockholderNo;

    /**
     * 股票代码
     */
    @Excel(name = "股票代码")
    private String stockCode;

    /**
     * 交易所：0：沪市 1：深市
     */
    @Excel(name = "交易所：0：沪市 1：深市")
    private Integer exchange;

    /**
     * 委托类型: 0:普通买入 1：普通卖出
     */
    @Excel(name = "委托类型: 0:普通买入 1：普通卖出 ")
    private Integer delegateType;

    /**
     * 委托状态
     * //未申报
     * Undeclared(0),
     * //正在申报
     * Declaring(1),
     * //已申报
     * Declared(2),
     * //已报待撤
     * PendingCancel(3),
     * //部成待撤
     * PFPendingCancel(4),
     * //部撤
     * PartCanceled(5),
     * //已撤
     * Canceled(6),
     * //部分成交
     * PartFilled(7),
     * //已成交
     * Filled(8),
     * //废单
     * Scraped(9),
     * //错误
     * Error(10),
     * //其他未知
     * Other(11);
     */
    @Excel(name = "委托状态")
    private Integer delegateState;

    /**
     * 价格
     */
    @Excel(name = "价格")
    private BigDecimal price;

    /**
     * 成交价格
     */
    @Excel(name = "成交价格")
    private BigDecimal dealPrice;

    /**
     * 成交数量
     */
    @Excel(name = "成交数量")
    private Integer dealVolume;


    /**
     * 成交金额
     */
    @Excel(name = "成交金额")
    private BigDecimal dealAmount;


    /**
     * 平仓盈亏
     */
    @Excel(name = "平仓盈亏")
    private BigDecimal profit;


    /**
     * 赢利率
     */
    @Excel(name = "赢利率")
    private BigDecimal profitRate;







    /**
     * 委托股数
     */
    @Excel(name = "委托股数")
    private Integer delegateVolume;

    /**
     * 委托编号
     */
    @Excel(name = "委托编号")
    private String delegateCode;

    /**
     * 交易状态(0:失败 1：成功)
     */
    @Excel(name = "交易状态(0:失败 1：成功)")
    private Integer tradingStatus;

    /**
     * 撤单委托: 0:false 1：true
     */
    @Excel(name = "撤单委托: 0:false 1：true ")
    private Boolean delegateCancle;

    /**
     * 撤单数量
     */
    @Excel(name = "撤单数量")
    private Integer delegateCancleVolume;

    /**
     * 委托时间
     */
    @Excel(name = "委托时间")
    private Integer delegateTime;

    /**
     * 关联单号
     */
    @Excel(name = "关联单号")
    private String relatedOrderNo;


    /**
     * 触发类型
     */
    @Excel(name = "触发类型")
    private String triggerType;

    /**
     * 是否平仓: 0:false 1：true
     */
    @Excel(name = "是否平仓: 0:false 1：true ")
    private Boolean positionClosed;


    /**
     * 错误信息
     */
    @Excel(name = "错误信息")
    private String errorMsg;


    /**
     * 策略id
     */
    @Excel(name = "策略id")
    private Long strategyId;
    /**
     * 策略组别id
     */
    @Excel(name = "策略组别id")
    private Long strategyGroupId;


    /**
     * 止损或者止盈是否再次开仓(0:否 1：是)
     */
    @Excel(name = "止损后是否再次开仓(0:否 1：是) ")
    private Boolean hasLoseOpened;

    /**
     * 策略名称
     */
    @Excel(name = "策略名称")
    private String strategyName;

    /**
     * 账户名称
     */
    @Excel(name = "账户名称")
    private String clientName;

    /**
     * 账户密码
     */
    private String password;

    /**
     * 创建人员
     */
    @Excel(name = "创建人员")
    private String createUser;

    /**
     * 创建日期
     */
    private String createDate;

}
